package cn.iocoder.yudao.module.crossborder.platform.service.provider.base;

import cn.iocoder.yudao.module.crossborder.platform.enums.PlatformTypeEnum;

/**
 * 跨境电商平台提供商抽象基类
 *
 * @author 芋道源码
 */
public abstract class BasePlatformProvider {

    /**
     * 获取平台类型
     *
     * @return 平台类型
     */
    public abstract PlatformTypeEnum getPlatformType();

    /**
     * 获取平台名称
     *
     * @return 平台名称
     */
    public String getPlatformName() {
        return getPlatformType().getName();
    }

    /**
     * 获取平台代码
     *
     * @return 平台代码
     */
    public String getPlatformCode() {
        return getPlatformType().getType().toLowerCase();
    }

    /**
     * 验证平台配置
     *
     * @param config 平台配置
     * @return 验证结果
     */
    public abstract boolean validateConfig(Object config);

    /**
     * 初始化平台
     *
     * @param config 平台配置
     */
    public abstract void initializePlatform(Object config);

    /**
     * 获取平台健康状态
     *
     * @return 健康状态
     */
    public abstract boolean isHealthy();

}
